package Lexico;


import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Map;

public class TablaSimbolos {
	private Hashtable<Integer, EntradaTS> tabla= new Hashtable<Integer, EntradaTS>();

	public TablaSimbolos(){}
	
	public boolean existeSimbolo(String buscada){
		EntradaTS entrada = new EntradaTS(buscada);
		return this.tabla.containsValue(entrada);
	}
	
	public Integer existeSimboloID(EntradaTS buscado){
		Integer id= 0;
        for(Map.Entry<Integer, EntradaTS> entry: tabla.entrySet()){
            if(entry.getValue().equals(buscado)){
                id = entry.getKey();
                break; 												//corta porque ya lo encontro
            }
        }
        return id;
   	}
	
	public EntradaTS getSimbolo(Integer buscado){
		return this.tabla.get(buscado);
	}
	
	public int insertSimbolo(EntradaTS nuevo){
		Integer cant= this.tabla.size() + 1;
		this.tabla.put(cant, nuevo);
		return cant;
	}
	
	public String toString(){
		String result="";		
		for(Enumeration<Integer> e= this.tabla.keys(); e.hasMoreElements();){
			Integer i= e.nextElement();
			EntradaTS ent= this.tabla.get(i);
			result= "Puntero: " + i + " " + ent.toString()+ '\n'+ result;	
		}
		return result;
	}
	
	public void sacar(Integer i){
		tabla.remove(i);
	}
	
	public int size(){
		return tabla.size();
	}
	public static void main(String[] args) {
		TablaSimbolos e= new TablaSimbolos();
		EntradaTS a= new EntradaTS("holas");
		EntradaTS b= new EntradaTS("hola");
		e.insertSimbolo(a);
		e.insertSimbolo(b);
		System.out.println(e.existeSimboloID(b));
		System.out.println(e.toString());
		
	}

}
